/*
 【入门】汉诺塔的移动次数
  题目描述

              │               │              │
              │               │              │
            ┌─┼─┐             │              │
           ┌┴─┼─┴┐            │              │
          ┌┴──┼──┴┐           │              │
        ──┴───┴───┴───────────┴──────────────┴─────
              A               B              C

    汉诺塔的问题大家都已经很熟悉了，有三个柱子，每个柱子上有一些大小不一的盘子，
    要把盘子从 A 柱移动到 C 柱，可以借助 B 柱; 小盘子只能落在大盘子上!
    请问 n 个盘子的情况下，需要最少移动多少次？
  输入
    输入一个整数 n 代表盘子的数量（n <= 20）
  输出
    一个整数，代表 n 个盘子的移动次数
  样例输入
    3
  样例输出
    7
*/

#include <bits/stdc++.h>

using namespace std;

int main() {
    int n;
    long long x;

    cin >> n;

    /*
      如下为使用数学的方法对应的代码实现:
      补充说明: 使用递归的方法解答在如下文件中:
          joyskid/J/L3/12_recursive_algorithm/p1223_hanoi_tower.cpp
    */
    x = pow(2, n) - 1;
    cout << x;

    return 0;
}